草庐IT

MySQL sum 默认返回0

全部标签

Ruby Time#to_date() 方法返回错误的日期

我们使用的是Ruby1.9.3,我发现Time#to_date似乎是一个奇怪的Ruby错误Time.new(1).to_date在应返回0001年1月1日时返回0001年1月3日。我无意中发现了这个问题。似乎如果我调用.to_datetime.to_date,结果是正确的。我还发现了一些其他相关的怪异之处。请参阅下面的irb控制台输出。(请注意,我使用的是irb,而不是railsconsole,以确保我使用的只是Ruby,不是Rails的任何附加内容。)>>require"Time"=>true>>Time.new(1).to_date=>#>>Time.new(1).to_datet

ruby - 为什么 self.class === MyClass 返回 false,而 self.class == MyClass 返回 true?

我正在使用Ruby的case语法来设置一些基于self.class的简单逻辑,如下所示:caseself.classwhenFirstClassdostuff....whenSecondClassdootherstuff...end我很快意识到这总是返回nil。经过仔细调查,我发现case使用===而不是==检查是否相等。在我的终端中运行self.class==FirstClass时,我按预期得到true,但是self.class===FirstClass返回假的。查看ruby​​文档,我找到了followingexplanation===:CaseEquality–ForclassO

ruby-on-rails - 是否有返回第一个 truthy 映射值的惯用 ruby​​/rails 方法?

我有一个对象数组,其中一些响应:description,我想从第一个对象中获取真实描述的描述。我可以这样做:objects.detect{|o|o.try(:description)}.description或者这个:objects.map{|o|o.try(:description)}.detect{|o|o}但第一个不是DRY(描述在那里两次),第二个在找到值之前遍历整个数组。ruby标准库或Rails的扩展中是否有任何东西可以让我做这样的事情:objects.detect_and_return{|o|o.try(:description)}我知道我可以很容易地编写它,但标准库足够

ruby - 为什么即使在 Hash 上调用 Enumerable#find/#detect 也会返回一个数组?

documentationforEnumerable#find/#detect说:find(ifnone=nil){|obj|block}→objornilfind(ifnone=nil)→an_enumeratorPasseseachentryinenumtoblock.Returnsthefirstforwhichblockisnotfalse.Ifnoobjectmatches,callsifnoneandreturnsitsresultwhenitisspecified,orreturnsnilotherwise.但是在Hash上调用时,结果已经将类型改为Array,而不是原来

ruby - 如何检查 ruby​​ 方法中可选参数的默认值是多少?

给定一个类,classMyClassdefindex(arg1,arg2="hello")endend是否可以通过Class#instance_method等方法获取arg2的默认值? 最佳答案 似乎我们可以检查方法参数值的唯一方法是访问方法的binding。使用Tracepoint类,我们可以获取这样一个绑定(bind)对象,然后检查所有optional参数的值。我们需要确保只使用必需的参数调用所需的方法,以便为默认参数分配默认值。下面是我尝试这样做的-它适用于实例方法和类方法。为了调用实例方法,我们需要实例化类-如果构造函数需要

ruby-on-rails - 有没有办法阻止 Rails 的内置服务器默认监听 0.0.0.0?

我在不受信任的网络(咖啡店、邻居的开放式wifi、DEFCON)上进行了大量的Web开发,当随机的、肯定有错误的软件(比如我正在开发的Rails应用程序)在0.0上绑定(bind)一个端口时,我会感到紧张.0.0并开始接受所有来者的请求。我知道我可以使用-b选项指定绑定(bind)到服务器的地址,但我想全局更改默认值,以便它始终以这种方式运行,除非我另有说明。当然我也可以运行某种会阻止连接的防火墙,但最好不要一开始就监听。是否有“.railsrc”文件或类似文件——至少是每个项目的设置文件,但最好是一些全局设置文件——我可以使用它来强制服务器默认仅绑定(bind)到127.0.0.1?

ruby - 带 ActiveSupport 的默认时区(无 Rails)

如何在ActiveSupport中设置默认时区?这是发生了什么:irb-r'rubygems'ruby-1.8.7-p174>require'active_support'ruby-1.8.7-p174>require'active_support/time_with_zone'ruby-1.8.7-p174>Time.zoneruby-1.8.7-p174>nil如何将其默认设置为当前位置? 最佳答案 在rails中,它通过rails初始化程序在environment.rb中设置Rails::Initializer.rundo|c

ruby - 你如何激活或设置默认的佣金?

我见过很多Youhavealreadyactivatedrake0.9.x,butyourGemfilerequiresrake0.x.x错误。当然,它们可以通过以下一些方法(暂时或总是)解决。bundleexecrake上述方法有效,但您始终必须键入bundleexec。也可以这样解决bundleupdate但是bundleupdate也会更新您的其他gem。有人说可以解决gemuninstallunwanted_rake_version是的,不需要的rake可以安装,但它仍然被标记为已激活,因此仍然给出错误。一种解决方案是在您的Gemfile中明确指定rake版本,但这不是问题所在

ruby-on-rails - object.count 返回 0。但是 object.any?返回真。发生了什么?

@card.submissions返回:]>@card.submissions.any?返回true。@card.submissions.count返回0。我要实现的是:if@card.submissions.any?render@card.submissionsend 最佳答案 看起来Submission是一个新记录(因为id是nil)。如果它是新的,它还没有进入数据库。count对数据库进行SQL调用以确定行数,因此正确地返回零。any?返回true,因为集合中有一个对象。如果您尝试@card.submissions.to_a.

ruby-on-rails - Rails 和日期,它们默认存储在 UTC 中吗?

我在Rails中处理日期和时区的最佳方式是什么?场景:我有客户在世界各地的网站上购买产品,当他们登录时,他们将能够选择他们来自哪个时区。所以我认为我应该以UTC将所有内容存储在数据库中,然后在前端我应该将日期转换为用户设置的时区首选项。他们在Ruby和Rails以及日期时间等方面有什么问题吗?我是Rails的新手,所以我正在寻找有关如何正确处理此问题的指导。 最佳答案 幸运的是,Rails几乎可以为您处理很多事情。正如其他人指出的那样,AR以UTC格式存储日期。如果您的用户表有一个time_zone字段,您可以这样做:#applic